﻿using System.Collections.Generic;
using Cms.Domain;

namespace Cms.Application.IO
{
    public interface IDiskAccess
    {
        void CreateFolder(string path);

        void RecreateAllDirectories();
        
        void MoveFolder(string sourcePath, string destPath);
        
        void CreateDirectory(string path);
        
        void DeleteDirectory(string path);
        
        void ClearDirectory(string path);
        
        void DeleteFolder(string path);
        
        void DeleteFile(string path);
        
        void MoveFile(string oldPath, string newPath);
        
        void CopyFile(string oldPath, string newPath);
        
        void MoveDirectory(string oldPath, string newPath);
        
        void CreateTextFile(string path, string code);
        
        string ReadTextFile(string path);
        
        void Compress(IList<MediaFile> selectedFiles, string zipFilename);
        
        IList<MediaFile> Decompress(MediaFile zippedMediaFile);
        
        ICmsFileInfo GetFileInfo(string path);
    }
}